﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using negocio.entidades;
using negocio.readOnly;
using negocio.servicios;

namespace web.form
{
    public partial class InformeCompras : System.Web.UI.Page
    {
        CompraService compr = new CompraService();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                CargarCombo();
                CargarGrillaTodos();
                //pnlFechas.Visible = false;
                //chkFechas.Checked = false;
            }
        }

        private void CargarCombo()
        {
            ProveedorService pro = new ProveedorService();

            cmbProveedor.DataSource = pro.ObtenerTodo();
            cmbProveedor.DataValueField = "IdProveedor";
            cmbProveedor.DataTextField = "RazonSocial";
            cmbProveedor.DataBind();
            cmbProveedor.Items.Insert(0, "Todos...");
        }

        private void CargarGrillaTodos()
        {
            List<CompraReadOnly> compras = compr.BuscarCompras(0);
            gvCompras.DataSource = compras;
            string[] keys = new string[1];
            keys[0] = "idCompra";
            gvCompras.DataKeyNames = keys;
            gvCompras.DataBind();

            lblTotal.Text = "Total de compras:";
            double suma = gvCompras.Rows.Cast<GridViewRow>().Sum(x => Convert.ToDouble(x.Cells[4].Text));
            lblTotalMostrar.Text = " $" + suma.ToString();
        }

        private void CargarGrillaProveedor(int idProv)
        {
            List<CompraReadOnly> compra = compr.BuscarCompras(idProv);
            gvCompras.DataSource = compra;
            string[] keys = new string[1];
            keys[0] = "idCompra";
            gvCompras.DataKeyNames = keys;
            gvCompras.DataBind();

            lblTotal.Text = "Total de compras:";
            double suma = gvCompras.Rows.Cast<GridViewRow>().Sum(x => Convert.ToDouble(x.Cells[4].Text));
            lblTotalMostrar.Text = " $" + suma.ToString();

        }

        protected void cmbProveedor_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cmbProveedor.SelectedIndex == 0)
            {
                CargarGrillaTodos();
            }
            else
            {
                CargarGrillaProveedor(Convert.ToInt32(cmbProveedor.SelectedValue));
                txtFechaHasta.Text = "";
                txtFechaDesde.Text="";
            }
        }

        protected void cmdFiltrar_Click(object sender, EventArgs e)
        {
            string fD = txtFechaDesde.Text;
            string fH = txtFechaHasta.Text;
            int idProv = 0;

            if (cmbProveedor.SelectedIndex != 0 && cmbProveedor.SelectedIndex != -1)
            {
                idProv = Convert.ToInt32(cmbProveedor.SelectedValue);
            }
            
            cargarConFiltro(fD,fH, idProv);
        }

        private void cargarConFiltro(string dateDesde, string dateHasta, int idprov )
        {
            List<CompraReadOnly> compra = compr.BuscarCompras(dateDesde, dateHasta, idprov);
            gvCompras.DataSource = compra;
            string[] keys = new string[1];
            keys[0] = "idCompra";
            gvCompras.DataKeyNames = keys;
            gvCompras.DataBind();
        }


        //protected void chkFechas_CheckedChanged(object sender, EventArgs e)
        //{
        //    if (chkFechas.Checked == true)
        //    {
        //        pnlFechas.Visible = true;
        //    }
        //    else
        //    {
        //        pnlFechas.Visible = false;
        //    }
        //}

    }
}